package com.nchu.domain.qo;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nchu.domain.po.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class PageQuery {
    @ApiModelProperty("页码")
    private Integer pageNo = 1;
    @ApiModelProperty("每页显示条数")
    private Integer pageSize = 5;
    @ApiModelProperty("排序字段")
    private String sortBy;
    @ApiModelProperty("是否升序")
    private Boolean isAsc = true;


    //fbb
    public <T> Page<T> toMpPage(OrderItem... items){
        //1 分页条件
        Page<T> page = Page.of(pageNo, pageSize);

        //1.2 排序条件
        if (StrUtil.isNotBlank(sortBy)){
            //不为空
            page.addOrder(new OrderItem(sortBy,isAsc));
        }else if (items != null){
            //为空 默认按照更新时间排序
            page.addOrder(items);
        }
        return page;
    }


    public <T> Page<T> toMpPageDefault(String defaultSortBy,boolean isAsc){
        return this.toMpPage(new OrderItem(defaultSortBy,isAsc));
    }

    public <T> Page<T> toMpPageDefaultCreate(){
        return this.toMpPage(new OrderItem("create_time",false));
    }

    public <T> Page<T> toMpPageDefaultUpdate(){
        return this.toMpPage(new OrderItem("update_time",false));
    }




}
